Hints, limitations and known problems in SNiFF+ 3.2

General

- In the SNiFF+ Working Environments tool, adm PWE:For Absolute Projects is written next to the Root node and appears after absolute project names in the Launch Pad. This can be safely ignored since this Private Working Environment (PWE) is only relevant when working with the Cross Reference Database.
- If you have problems opening the SNiFF+ online documentation on Windows, run

HHUPD.EXE (the latest version of Microsoft HTML Help). This executable can be found on your SNiFF+ CD-ROM in the HTMLHELP directory or on our ftp site.
- Closing a project via sniffaccess or the cross reference database remote shutdown mechanism only works correctly when no modal windows are open.
- SNiFF+ does not support black and white terminals.
- Update scripts (e.g.,
updateWS.sh ) on Windows work with forward slashes only.
- When using SNiFF+ with ClearCase, we suggest that you store your symtab files someplace outside the ClearCase file system. By doing so, SNiFF+ is able to extract symbol information faster than before.
- On Windows, when using SNiFF+ with ClearCase, note that clearmake cannot be run in the standard bash shell. Please contact TakeFive Support for advice on how to solve this problem.
On Windows, to avoid " bad command " messages when running clearmake, do one of the following:

- when running clearmake, enter

MAKE_PARAMS=
A space should follow MAKE_PARAMS=
or

- in the Platform Makefile, in the

MAKE_PARAMS= --no-print-directory option, remove --no-print-directory
On Unix and on Windows: you must use the option
clearmake -C GNU
to use clearmake successfully.
- For SNiFF+ 3.2, you need the latest SNiFF+ Parser Development Kit which is delivered with SNiFF+ 3.2, i.e., you cannot use the Parser Development Kit of SNiFF+ 3.0 or 3.1 with SNiFF+ 3.2. Recompile your old parsers with the new Parser Development Kit in order to use your old parser.
- In Source Editor, it can be that the toolbar icons are sometimes activated when they shouldn't be and vice versa.
- SNiFF+ does not support file systems which are limited to 8.3 file naming. CAUTION: SNiFF+ for Windows supports and makes use of long filenames (filenames > 8.3). You should not install SNiFF+ or store SNiFF+ projects on file systems that don't support long filenames (e.g., older releases of Novell Netware don't support long filenames).
- The recommended minimum monitor resolution for working with SNiFF+ is 800x600.
- RCS 5.7 and ClearCase on Windows do not accept blanks in user names.
- The Attach command in the Execution menu of the Debugger tool is not supported on Linux platforms.
- To access the man pages for FLEXlm modify the environment variable
MANPATH like this:

setenv MANPATH $MANPATH\:$SNIFF_DIR/man | (for csh)
MANPATH=$MANPATH:$SNIFF_DIR/man; export MANPATH | (for sh or ksh)

- To make sure that SNiFF+ can access the GNU tools installed by
install.kit make sure that the PATH environment variable includes a path to /usr/local/bin/ .
- When you load large projects, the following error message may appear:
Error during read of project file .
This is caused when your system reaches its file descriptor limit. Ask your system administrator to increase this limit.
- When you update the symbol information for large projects, we suggest that you don't select the Force Reparse command in the Project menu of the Project Editor.
Instead, select all projects in the Project Tree of the Project Editor and select Delete Symbol Information from the Project menu, close the project and open it again. By doing so updating symbol information will be much faster.
- If you intend to modify the cross platform VCS Adaptors, we suggest that you don't modify the python files for these adaptors. Instead we supply the SNiFF+ 2.4 shell script adaptors which can be easily modified. For details, please refer to the Readme file in the
$SNIFF_DIR/old_vcs/ directory.
- The SNiFF+ executable,
sniff -v does not print the version number and the date on Windows. Instead, the version number is printed to standard error.
- On several Intel based Unix systems the kernel is preconfigured to a maximum process size of 16MB. This can cause problems because SNiFF+ can easily reach this limit when loading projects. To avoid this we recommend to increase the limit to at least 32MB.
- When a subproject including a not already loaded language is added to a project the first time, the new language cannot be selected immediately in the language selector. The new language is available only after re-loading of the project.
Configuring SNiFF+ with Exceed (5.x and 6.x)
When using SNiFF+ with Exceed, all fonts are mapped to a standard text font ("system"). Thus you cannot see any bold or italic fonts in SNiFF+. To change this, do the following:

Open your Xconfig tool.

2. In the Xconfig tool, double-click on Font.

3. In the Font Settings dialog that appears, click Font Database...

4. In the Font Database dialog that appears, deselect the Automatic Font Substitution checkbox.

5. Press OK, Close and close Xconfig.
   In addition, we recommend that you use 75dpi fonts. If these fonts aren't in the Exceed Font Database, ask your System Administrator to install them for you.

   | Note
   | Depending on the Keyboard you have, some keyboard shortcuts don't work when using Exceed. Characters addressed with <Alt Gr> combinations may not be interpreted correctly.

Using WinSock2 on Windows95
Using certain versions of WinSock2 for Windows95 can cause SNiFF+ to respond extremely slowly to keyboard events, e.g. typing something in the Source Editor. For instance, many versions of the Sun JDK for Windows include this version of WinSock2. If you experience this problem, please download the latest version of WinSock2 for Windows95 from the Microsoft WWW site at
http://www.microsoft.com/windows95/downloads/contents/wuadmintools/ s_wunetworkingtools/w95sockets2/default.asp.
This version does not show this behavior.
Bash Shell Performance on Windows
The bash and processes using the bash e.g., make started by Target > Make or commands like cd c: may execute slowly. The reason for this is that SNiFF+ uses paths including a drive letter e.g., D:/MyProject while the bash natively only understands POSIX-like paths e.g., //D/MyProject . Bash can only quickly convert such paths if they are known in its internal mount table. This mount table is persistently stored in the Windows Registry and is only used inside bash for translating paths, so using it is risk free.
Workaround: SNiFF+ provides shell scripts which mount and respectively unmount Windows drives and directories which are important for bash like /tmp and /bin . These scripts are located in your SNiFF_DIR/bin directory.

- For mounting, execute the following command in the dos shell:

sh MountAll.sh <ROOTDIR>
ROOTDIR may be an existent or non existent directory which may be specified relatively or absolutely.

| Note
| The $SNIFF_DIR environment variable must be set before running this script. The reason for this is that SNiFF_DIR/bin is mounted to /bin and in the script the Shell tools are called from SNiFF_DIR/bin .

- For unmounting, execute the following command in the dos shell:
sh UmountAll.sh -k <directories which you don't want to unmount>
If no directories are specified after -k , all directories are unmounted.
Online Help on Unix
You may encounter problems using SNiFF+ online help on Unix due to the Java Applet used. To use the Java-free version of the online documentation, do the following:

- In

$SNIFF_DIR/help/online/
replace the file " topic.helpmap " with the file (same name) in
$SNIFF_DIR/help/online/online_alt .
This allows the SNiFF+ menu to access the Java-free version of the online documentation.
To open the online documentation independent of SNiFF+, do the following:

- In

$SNIFF_DIR/doc/online/
double-click on the file called " index.htm ".
This can be used to open the online documentation without using Java or JavaScript.
Screenshots in SNiFF+ for Unix online and paper documentation
The screenshots found in the SNiFF+ Documentation set were taken on Windows. Note that there are slight differences in the look and feel of the various views, dialogs and windows between the Unix and Windows versions of SNiFF+.
CMVC adaptors

- The usage of HP RCS can damage the repository files created with GNU RCS. Please be careful if you have installed both version control systems.

Version and configuration management

- SCCS does not support version labels. To enable this functionality, the label information is stored in the description text and is normally hidden from the user. To see the label information in the description text, you will have to issue SCCS commands from outside of SNiFF+.

Parser/Cross Referencer

- SNiFF+ 3.2 uses

define or undefine directives found in the Parser Configuration file as parameters for the preprocessor (when it is switched on).
- The option Open XRef-DB Read Only does not work correctly in a Private Working Environment (PWE) which does not access a Shared Source Working Environment (SSWE). If you need this functionality, we suggest you create an SSWE for your PWE to access.
- A reference to class members by friend functions is not shown in the call graph.
- In some cases, the Cross Referencer loses some references when browsing code that uses templates extensively.
- Only basic support for browsing virtual member functions in the call graph is available. Any reference to a virtual member function may result in several possible function calls at run time. The call graph simply shows the virtual member function of the declared class, or its first base class which implements the function.
Printing on Unix
By default, SNiFF+ is configured to print documents in DIN-A4 format. If your printer doesn't support this format you have to change the setting in the print dialog.
IBM RS/6000 and DEC Alpha: ptty (Shell, Debugger) problems after abnormal exit
In certain situations, pseudo ttys are not properly closed during an abnormal termination of SNiFF+ (e.g., with the KILL or SEGV signals). This results in an incorrect handling of input and output in the Shell and Debugger tools.
Workaround:
Determine what shells are running for the current user:
ps | grep sh
and kill the shells that are left over after a terminated sniff process:
kill -HUP <shell_process_ids>
<shell_process_ids> are the process IDs of the SNiFF+ shells that are still running.
All breakpoints disappear from the Source Editor
If the gdb option 'verbose' is set and the program stops at the first breakpoint, SNiFF+ resets all breakpoints. The markers disappear from the Source Editor.
Workaround: Do not use verbose mode in gdb .
Error message when starting sniff on HP-UX

- The following error messages occur when starting SNiFF+ or a parser on HP-UX:

? mts: discarding 4 unaligned sbrk bytes
This message can be ignored.
Compiling on Linux
To compile on Linux, you must enter your Make Command by doing the following:

- In the Preferences > Platform view, select Linux-glibc in the Platform List and press the Set Writable button.
- Select the Make Support tab and enter

make in the Make Command field.
- Press OK to apply the settings and to close the Preferences dialog.
Java Debugger

- Deleting a breakpoint while the application is running does not always work correctly, i.e., the debugger still stops. If this happens, close the application and the debugger.
Workaround: Before deleting a breakpoint, always choose Execution > Interrupt from the Debugger's menu.
- The Java Debugger (JDK1.1.3) does not work on Unixware.